﻿namespace NTLib.Core.Exceptions.Collection
{
    using Exceptions;
    using Extensions;
    using Strings;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    /// <summary>
    /// Raised when no sequensor have been found.
    /// </summary>
    /// <seealso cref="NTLib.Core.Exceptions.NTLibException" />
    public sealed class SequensorMissingException : NTLibException
    {
        #region Fields

        /// <summary>
        /// Gets the type of the element.
        /// </summary>
        public Type ElementType { get; }

        /// <summary>
        /// Gets the type of the sequence.
        /// </summary>
        public Type SequenceType { get; }

        #endregion

        #region Ctor

        /// <summary>
        /// Initializes a new instance of the <see cref="SequensorMissingException"/> class.
        /// </summary>
        public SequensorMissingException(Type elementType, Type sequenceType, Exception inner = null)
            : base(ExceptionResources.SequensorMissingException.Argument(elementType, sequenceType), inner)
        {
            this.ElementType = elementType;
            this.SequenceType = sequenceType;
        }

        #endregion
    }
}
